package com.ionehe.group.common.file;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.InputStream;
import java.util.List;

/**
 * Copyright (c) 2021 ionehe.com
 * Date: 2020/9/25
 * Time: 上午9:30
 *
 * @author 2020年 <a href="mailto:a@ionehe.com">秀</a>
 */
public interface FileServer {
    /**
     * 写入文件
     *
     * @param fileName      文件名
     * @param multipartFile 文件对象
     * @return 文件地址
     */
    String write(String fileName, MultipartFile multipartFile);

    /**
     * 写入文件
     *
     * @param fileName 文件名
     * @param file     文件对象
     * @return 文件地址
     */
    String write(String fileName, File file);

    /**
     * 删除文件
     *
     * @param fileName 文件名
     * @return 删除结果
     */
    boolean delete(String fileName);

    /**
     * 批量删除文件
     *
     * @param fileNameList 文件名
     * @return 删除结果
     */
    boolean delete(List<String> fileNameList);

    /**
     * 获取文件对象流
     *
     * @param fileName 文件名(或url)
     * @return 文件流
     */
    InputStream getObject(String fileName);

    /**
     * 获取文件url
     *
     * @param fileName 文件名称
     * @return 文件url
     */
    String getFileUrl(String fileName);
}